﻿#region Namespace References

using System;
using DynConDevCorp.OpenArch.SmartData.Core;
using DynConDevCorp.OpenArch.SmartData.Interfaces;
using DynConDevCorp.OpenArch.SmartData.Interfaces.Attributes;

#endregion

namespace DynConDevCorp.OpenArch.SmartData.NorthWindLoader
{
    public class Order : SmartEntity
    {
        #region Constructors

        public Order()
        {
        }

        public Order(Guid EntityID)
            : base(EntityID)
        {
        }

        #endregion

        #region Public Instance Properties

        [AutoField]
        public ISmartEntityLink<Customer> Customer { get; private set; }

        [AutoField]
        [Persist(IsXmlPersistable = false, IsDatabaseField = true, DatabaseFieldName = "CustomerID")]
        public ISmartField<String> CustomerCode { get; private set; }

        [AutoField]
        public ISmartField<String> EmployeeID { get; private set; }

        [AutoField]
        public ISmartField<String> Freight { get; private set; }

        [AutoField]
        public ISmartField<String> OrderDate { get; private set; }

        [AutoField]
        [Persist(IsXmlPersistable = true, IsDatabaseField = true, DatabaseFieldName = "OrderID")]
        public ISmartField<String> OrderNumber { get; private set; }

        [AutoField]
        public ISmartField<String> RequiredDate { get; private set; }

        [AutoField]
        public ISmartField<String> ShipAddress { get; private set; }

        [AutoField]
        public ISmartField<String> ShipCity { get; private set; }

        [AutoField]
        public ISmartField<String> ShipCountry { get; private set; }

        [AutoField]
        public ISmartField<String> ShipName { get; private set; }

        [AutoField]
        public ISmartField<String> ShippedDate { get; private set; }

        [AutoField]
        public ISmartField<String> ShipPostalCode { get; private set; }

        [AutoField]
        public ISmartField<String> ShipRegion { get; private set; }

        [AutoField]
        public ISmartField<String> ShipVia { get; private set; }

        #endregion
    }
}